REM Play Level Pile of its own good.

REM********lore*****************

QUICK_OBJECTIVE(1,"Greetings, Keeper! A pitiful fortress manned by feeble heroes stands in the way of your dominion over this land. Crush them all to dust, so that no one may stop you from ruling with an iron fist.",2)
QUICK_INFORMATION(2,"You only have enough money for a single treasury tile, so I recommend being careful with your funds. There are no gemstones in the area, so you will have to try your best to mine as much gold as possible")

IF_ACTION_POINT(6,PLAYER0)
	QUICK_INFORMATION(3,"Oh. Unfortunately, I have bad news for you. On the way to the fortress, you will encounter two rival Keepers, and you won't be able to proceed until they are destroyed. But there is good news, too! These Guardians' strongholds have fallen into disrepair, and you might just find a way to destroy them.")
ENDIF

REM ******* Basic settings *******

SET_GENERATE_SPEED(500)

MAX_CREATURES(PLAYER0,14)

COMPUTER_PLAYER(PLAYER2,0)
COMPUTER_PLAYER(PLAYER3,0)

ALLY_PLAYERS(PLAYER2,PLAYER_GOOD)
ALLY_PLAYERS(PLAYER3,PLAYER_GOOD)

START_MONEY(PLAYER0,50)
START_MONEY(PLAYER2,0)
START_MONEY(PLAYER3,0)

ADD_CREATURE_TO_POOL(FLY,30)
ADD_CREATURE_TO_POOL(BUG,20)
ADD_CREATURE_TO_POOL(SORCEROR,5)
ADD_CREATURE_TO_POOL(TROLL,20)
ADD_CREATURE_TO_POOL(DEMONSPAWN,10)


REM ********** Available creatures **********

CREATURE_AVAILABLE(ALL_PLAYERS,FLY,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,BUG,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,DEMONSPAWN,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,SORCEROR,1,1)
CREATURE_AVAILABLE(ALL_PLAYERS,TROLL,1,1)

REM ********** Available rooms **********

ROOM_AVAILABLE(PLAYER0,TREASURE,1,1)
ROOM_AVAILABLE(PLAYER0,LAIR,1,1)
ROOM_AVAILABLE(PLAYER0,GARDEN,1,1)
ROOM_AVAILABLE(PLAYER0,TRAINING,1,0)
ROOM_AVAILABLE(PLAYER0,RESEARCH,1,1)
ROOM_AVAILABLE(PLAYER0,WORKSHOP,1,0)

ROOM_AVAILABLE(PLAYER2,TREASURE,0,0)
ROOM_AVAILABLE(PLAYER2,LAIR,0,0)
ROOM_AVAILABLE(PLAYER2,GARDEN,0,0)
ROOM_AVAILABLE(PLAYER2,RESEARCH,0,0)

ROOM_AVAILABLE(PLAYER3,TREASURE,0,0)
ROOM_AVAILABLE(PLAYER3,LAIR,0,0)
ROOM_AVAILABLE(PLAYER3,GARDEN,0,0)
ROOM_AVAILABLE(PLAYER3,RESEARCH,0,0)

DOOR_AVAILABLE(PLAYER0,WOOD,1,0)
DOOR_AVAILABLE(PLAYER0,BRACED,1,0)

TRAP_AVAILABLE(PLAYER0,ALARM,1,0)
TRAP_AVAILABLE(PLAYER0,TNT,1,0)

REM ********** Available spells **********

MAGIC_AVAILABLE(PLAYER0,POWER_HAND,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SLAP,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_SIGHT,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_SPEED,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_OBEY,1,0)
MAGIC_AVAILABLE(PLAYER0,POWER_IMP,1,1)
MAGIC_AVAILABLE(PLAYER0,POWER_CALL_TO_ARMS,1,0)

MAGIC_AVAILABLE(PLAYER2,POWER_HAND,0,0)
MAGIC_AVAILABLE(PLAYER2,POWER_SLAP,0,0)
MAGIC_AVAILABLE(PLAYER2,POWER_IMP,0,0)

MAGIC_AVAILABLE(PLAYER3,POWER_HAND,0,0)
MAGIC_AVAILABLE(PLAYER3,POWER_SLAP,0,0)
MAGIC_AVAILABLE(PLAYER3,POWER_IMP,0,0)

REM ********** Game settings **********

REM ********** Triggers & End game **********

CREATE_PARTY(ONE)
    ADD_TO_PARTY(ONE,THIEF,2,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,DWARFA,1,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,BARBARIAN,1,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,ARCHER,1,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,THIEF,2,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(ONE,THIEF,3,0,ATTACK_ENEMIES,0)

CREATE_PARTY(TWO)
    ADD_TO_PARTY(TWO,BARBARIAN,6,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,BARBARIAN,6,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,MONK,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,AVATAR,3,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,MONK,4,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,BARBARIAN,6,0,ATTACK_ENEMIES,0)
    ADD_TO_PARTY(TWO,BARBARIAN,6,0,ATTACK_ENEMIES,0)

IF_ACTION_POINT(2,PLAYER0)
    SET_FLAG(PLAYER_GOOD,FLAG0,1)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,ARCHER,1,4,2,100)
	QUICK_INFORMATION(4,"Watch out! It looks like reserve troops are about to come out...")
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ONE,3,DUNGEON_HEART,0,1,0)
    ADD_TUNNELLER_PARTY_TO_LEVEL(PLAYER_GOOD,ONE,4,DUNGEON_HEART,0,1,0)
ENDIF

IF_AVAILABLE(PLAYER0,TNT == 1)
	QUICK_INFORMATION(6,"Wow! Your loyal minions have invented and created dynamite! Use it to destroy the enemy's walls.")
ENDIF

SET_TIMER(PLAYER2,TIMER0)
SET_TIMER(PLAYER2,TIMER1)
SET_TIMER(PLAYER2,TIMER2)
SET_TIMER(PLAYER2,TIMER3)
SET_TIMER(PLAYER2,TIMER4)
SET_TIMER(PLAYER2,TIMER5)
SET_TIMER(PLAYER3,TIMER0)
SET_TIMER(PLAYER3,TIMER1)
SET_TIMER(PLAYER3,TIMER2)
SET_TIMER(PLAYER3,TIMER3)
SET_TIMER(PLAYER3,TIMER4)
SET_TIMER(PLAYER3,TIMER5)

IF(PLAYER2,TIMER0 >= 350)
    IF(PLAYER2,TOTAL_CREATURES < 25)
        IF(PLAYER2,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER2,TROLL,-1,2,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER0)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER2,TIMER1 >= 475)
    IF(PLAYER2,TOTAL_CREATURES < 25)
        IF(PLAYER2,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER2,BUG,-1,1,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER1)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER2,TIMER2 >= 550)
    IF(PLAYER2,TOTAL_CREATURES < 25)
        IF(PLAYER2,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER2,ORC,-1,1,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER2)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER2,TIMER3 >= 650)
    IF(PLAYER2,TOTAL_CREATURES < 25)
        IF(PLAYER2,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER2,GHOST,5,1,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER3)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER2,TIMER4 >= 750)
    IF(PLAYER2,TOTAL_CREATURES < 25)
        IF(PLAYER2,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER2,HELL_HOUND,-1,1,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER4)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER2,TIMER5 >= 1100)
    IF(PLAYER2,TOTAL_CREATURES < 26)
        IF(PLAYER2,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER2,DRAGON,-1,1,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER2,TIMER5)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER3,TIMER0 >= 350)
    IF(PLAYER3,TOTAL_CREATURES < 25)
        IF(PLAYER3,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER3,THIEF,-2,2,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER3,TIMER0)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER3,TIMER1 >= 475)
    IF(PLAYER3,TOTAL_CREATURES < 25)
        IF(PLAYER3,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER3,ARCHER,-2,1,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER3,TIMER1)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER3,TIMER2 >= 550)
    IF(PLAYER3,TOTAL_CREATURES < 25)
        IF(PLAYER3,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER3,BARBARIAN,-2,1,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER3,TIMER2)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER3,TIMER3 >= 650)
    IF(PLAYER3,TOTAL_CREATURES < 25)
        IF(PLAYER3,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER3,WIZARD,-2,1,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER3,TIMER3)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER3,TIMER4 >= 750)
    IF(PLAYER3,TOTAL_CREATURES < 25)
        IF(PLAYER3,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER3,GIANT,-2,1,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER3,TIMER4)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER3,TIMER5 >= 1400)
    IF(PLAYER2,TOTAL_CREATURES < 26)
        IF(PLAYER2,TOTAL_CREATURES >= 1)
            NEXT_COMMAND_REUSABLE
            ADD_CREATURE_TO_LEVEL(PLAYER3,SAMURAI,-2,1,1,0)
            NEXT_COMMAND_REUSABLE
            SET_TIMER(PLAYER3,TIMER5)
        ENDIF
    ENDIF
ENDIF

IF(PLAYER_GOOD,KNIGHT == 0)
    ADD_CREATURE_TO_LEVEL(PLAYER_GOOD,TENTACLE,-3,3,5,0)
ENDIF

IF(PLAYER_GOOD,BARBARIAN == 0)
    ADD_PARTY_TO_LEVEL(PLAYER_GOOD,TWO,-3,1)
    IF(PLAYER_GOOD,AVATAR == 0)
		QUICK_OBJECTIVE(5,"Congratulations! I wouldn't be wrong to say that by destroying that insolent avatar, you have attained heights of power beyond your wildest dreams.")
        WIN_GAME
    ENDIF
ENDIF
